package com.sq.partner.manager.service;

import java.util.List;
import java.util.Map;

import com.sq.partner.manager.mybatis.model.TradInsuPlanGroup;

public interface ITradInsuPlanGroupService {
	/**
	 * 新增方案和方案组的关联
	 * @param group
	 * @return
	 * @throws Exception
	 */
	boolean addTradInsuPlanGroup(TradInsuPlanGroup group) throws Exception;
	
	/**
	 * 修改方案和方案组的关联
	 * @param group
	 * @return
	 * @throws Exception
	 */
	boolean updateTradInsuPlanGroup(TradInsuPlanGroup group) throws Exception;
	
	
	/**
	 * 删除方案和方案组的关联
	 * @param group
	 * @return
	 * @throws Exception
	 */
	boolean deleteTradInsuPlanGroup(TradInsuPlanGroup group) throws Exception;
	
	/**
	 * 查询方案组关联
	 * @param group
	 * @return
	 * @throws Exception
	 */
	List<TradInsuPlanGroup> queryTradInsuPlanGroup(TradInsuPlanGroup group) throws Exception;
	
	
	/**
	 * 删除方案和方案组的关联(根据方案号)
	 * @param insuPlanNumber
	 * @return
	 * @throws Exception
	 */
	boolean deleteTradInsuPlanGroup(String insuPlanNumber) throws Exception;
	
	
	/**
	 * 删除此投保方案下的所有方案组关联信息
	 */
	void deleteTradInsuPlanGroupByInsuPlanNo(String insuPlanNo) throws Exception;
	

	/**
	 * 删除此非车险方案下的所有方案组关联信息
	 */
	void deleteTradNocarPlanGroupByPlanCode(String prodCode) throws Exception;
	
	/**
	 * 删除此方案组下的所有投保方案关联信息
	 */
	void deleteTradInsuPlanGroupByGroupId(long groupId) throws Exception;
	
	/**
	 * 修改方案组关联的”是否必需“
	 * @param group
	 * @return
	 * @throws Exception
	 */
	boolean updateIsRequired(TradInsuPlanGroup group) throws Exception;
	/***
	 * 导出方案方案组
	 */
	 List<TradInsuPlanGroup> impNlifeGroup(Map<String, Object>map) throws Exception;

	List<TradInsuPlanGroup> searchTradInsuPlanGroupsByplanCode(
			Map<String, Object> maps) throws Exception;
	
	/***
	 * 导出方案方案组
	 */
	List<Map<String, Object>>  impNlifeGroup1(Map<String, Object>map) throws Exception;
	/**
	 *	批量新增方案和方案组的关联
	 * @param group
	 * @return
	 * @throws Exception
	 */
	void addPlanGroupList(List<TradInsuPlanGroup> group) throws Exception;

	List<Map<String, Object>> impRealGroupPlan(Map<String, Object> map)throws Exception;
}
